Quando il tuo codice cresce oltre alcune centinaia di righe, si trasforma da un semplice script in un Sistema. Per prevenire il sovraccarico cognitivo, Rust utilizza un sistema gerarchico di moduli per suddividere la funzionalità in confini logici e gestibili.
1. L'imperativo della scalabilità
In un sistema esteso, non dovresti dover tenere tutta l'architettura nella tua testa. I moduli ti permettono di isolare i dettagli implementativi, esponendo solo ciò che è necessario tramite un'API pubblica.
2. Architettura a doppio pacchetto
Un singolo pacchetto Rust Pacchetto funge da contenitore. Può ospitare sia un pacchetto libreria (src/lib.rs) per la logica principale che sia un pacchetto binario (src/main.rs) per il punto di ingresso eseguibile. Ciò garantisce una separazione chiara tra ciò che il sistema fa e come l'utente interagisce con esso.
3. Fondamenti organizzativi
Inizializzando con cargo new --lib, si privilegia la modularità. In un sistema di gestione ristoranti, "Front Office" (reception) e "Back Office" (cucina) sono suddivisi, consentendo a più interfacce (CLI, Web, Mobile) di condividere la stessa logica di base.